#include <gtest/gtest.h>

#include <iostream>

int add(const int a, const int b) { return a + b; }

class AddTest_f : public testing::Test {
public:
    AddTest_f() { std::cout << "AddTest\n"; }
    ~AddTest_f() override { std::cout << "~AddTest\n"; }
    void SetUp() override { std::cout << "SetUp\n"; }
    void TearDown() override { std::cout << "TearDown\n"; }
};

TEST_F(AddTest_f, PositiveNumbers) {
    std::cout << "PositiveNumbers: " << __FUNCTION__ << "\n";
    EXPECT_EQ(add(2, 3), 5);
}
TEST_F(AddTest_f, NegativeNumbers) {
    std::cout << "NegativeNumbers: " << __FUNCTION__ << "\n";
    EXPECT_EQ(add(-2, -1), -3);
}